package cms.api;

import cms.model.Article;
import cms.model.Channel;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * Created by Roney on 2016/10/13.
 */
public interface ArticleApi {
    /**
     * 分页查询文章
     * @param isDelete
     * @param pageable
     * @return
     */
    public List<Article> getList(Boolean isDelete, Pageable pageable);

    /**
     * 查询文章管理首页文章列表
     * @param start
     * @param end
     * @param title
     * @param pageable
     * @return
     */
    public Page<Article> getArticlePage(String title, Date start,Date end,Pageable pageable);

    /**
     * 查询文章管理首页文章列表(积分商城)
     * @param start
     * @param end
     * @param title
     * @param pageable
     * @return
     */
    public Page<Article> getArticlePageScore(String title, Date start,Date end,Pageable pageable);

    /**
     * 获取所有文章list
     * @param pageable
     * @return
     */
    public Page<Article> getAllArticle(Pageable pageable);

    /**
     * 获取所有文章list(积分)
     * @param pageable
     * @return
     */
    public Page<Article> getAllArticleScore(Pageable pageable);

    /**
     * 获取栏目选择列表
     * @return
     */
    public List<Channel> getChannelList();

    /**
     * 获取栏目选择列表（积分商城）
     * @return
     */
    public List<Channel> getChannelListScore();

    /**
     * 保存文章
     * @param article
     * @return
     */
    public Map saveArticle(Article article);

    /**
     * 根据文章id获取文章信息
     * @param id
     * @return
     */
    public Article checkArticle(String id);

    /**
     * 根据文章id删除文章
     * @param id
     * @return
     */
    public Map deleteById(String id);

    public String toString();

    /**
     * 根据组织id查询文章List
     * @param companyId
     * @return
     */
    public List<Article> getArticlesByCompany(String companyId, boolean isDelete);
}
